package com.example.demo.config;

import org.springframework.web.servlet.HandlerInterceptor;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

/**
 * Created with IntelliJ IDEA.
 * Description: 用户登录验证自定义拦截器
 */
// 实现 HandlerInterceptor 接口，实现登录验证拦截器
//public class LoginInterceptor implements HandlerInterceptor {
//
//    /**
//     * 此方法返回一个 boolean 类型的值
//     * 如果为 true，表示验证成功，可以执行后续操作
//     * 如果为 false，表示验证失败，后续操作不能执行
//     * @param request
//     * @param response
//     * @param handler
//     * @return
//     * @throws Exception
//     */
//    @Override
//    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
//        // 如果拦截器抛出了异常，再没人可以给它兜底，它就会把异常返回给前端
//        // int result = 10 / 0;
//        // 用户登录业务判断
//        HttpSession session = request.getSession(false);
//        if(session != null && session.getAttribute("userInfo") != null) {
//            return true;
//        }
//        // 没有登录，可以跳转到登陆页面，也可以返回 401 或 403，没有权限码
//        // 如果后续未拦截的代码抛出异常，也会执行下面的代码
//        // 只会在后端抛出异常，给前端的返回仍然正常
//        response.sendRedirect("/login.html");
//        // response.setStatus(403);
//        return false;
//    }
//}
